using System;
using UnityEngine;

namespace SunshineFarmWord
{
    [Serializable]
    public class CustomizeAnimationData
    {
        // 待机
        [SerializeField] private string idleParameterName = "Idle";
        // 步行
        [SerializeField] private string walkParameterName = "Walk";
        // 跑步
        [SerializeField] private string runParameterName = "Run";
        // 跳跃
        [SerializeField] private string jumpParameterName = "Jump";
        // 开始钓鱼甩杆
        [SerializeField] private string castingParameterName = "Casting";
        // 钓鱼中等待
        [SerializeField] private string waitingParameterName = "Waiting";
        // 钓鱼中收线
        [SerializeField] private string reelingParameterName = "Reeling";
        // 结束钓鱼收杆
        [SerializeField] private string caughtParameterName = "Caught";
        // 攻击
        [SerializeField] private string attackParameterName = "Attack";
        // 挖掘
        [SerializeField] private string digParameterName = "Dig";
        // 砍树
        [SerializeField] private string axeParameterName = "Axe";
        // 死亡
        [SerializeField] private string deathParameterName = "Death";
        // 采集或工作
        [SerializeField] private string doingParameterName = "Doing";
        // 受伤
        [SerializeField] private string hurtParameterName = "Hurt";
        // 建造
        [SerializeField] private string hameringParameterName = "Hamering";
        // 采矿
        [SerializeField] private string miningParameterName = "Mining";
        // 搬运
        [SerializeField] private string carryParameterName = "Carry";
        // 翻滚
        [SerializeField] private string rollParameterName = "Roll";
        // 游泳
        [SerializeField] private string swimmingParameterName = "Swimming";
        // 浇水
        [SerializeField] private string wateringParameterName = "Watering";
        public int IdleParameterHash { get; private set; }
        public int WalkParameterHash { get; private set; }
        public int RunParameterHash { get; private set; }
        public int JumpParameterHash { get; private set; }
        public int CastingParameterHash { get; private set; }
        public int WaitingParameterHash { get; private set; }
        public int ReelingParameterHash { get; private set; }
        public int CaughtParameterHash { get; private set; }
        public int AttackParameterHash { get; private set; }
        public int DigParameterHash { get; private set; }
        public int AxeParameterHash { get; private set; }
        public int DeathParameterHash { get; private set; }
        public int DoingParameterHash { get; private set; }
        public int HurtParameterHash { get; private set; }
        public int HameringParameterHash { get; private set; }
        public int MiningParameterHash { get; private set; }
        public int CarryParameterHash { get; private set; }
        public int RollParameterHash { get; private set; }
        public int SwimmingParameterHash { get; private set; }
        public int WateringParameterHash { get; private set; }

        public void Initialize()
        {
            WalkParameterHash = Animator.StringToHash(walkParameterName);
            RunParameterHash = Animator.StringToHash(runParameterName);
            JumpParameterHash = Animator.StringToHash(jumpParameterName);
            CastingParameterHash = Animator.StringToHash(castingParameterName);
            WaitingParameterHash = Animator.StringToHash(waitingParameterName);
            ReelingParameterHash = Animator.StringToHash(reelingParameterName);
            CaughtParameterHash = Animator.StringToHash(caughtParameterName);
            AttackParameterHash = Animator.StringToHash(attackParameterName);
            DigParameterHash = Animator.StringToHash(digParameterName);
            AxeParameterHash = Animator.StringToHash(axeParameterName);
            DeathParameterHash = Animator.StringToHash(deathParameterName);
            DoingParameterHash = Animator.StringToHash(doingParameterName);
            HurtParameterHash = Animator.StringToHash(hurtParameterName);
            HameringParameterHash = Animator.StringToHash(hameringParameterName);
            MiningParameterHash = Animator.StringToHash(miningParameterName);
            CarryParameterHash = Animator.StringToHash(carryParameterName);
            RollParameterHash = Animator.StringToHash(rollParameterName);
            SwimmingParameterHash = Animator.StringToHash(swimmingParameterName);
            WateringParameterHash = Animator.StringToHash(wateringParameterName);
            IdleParameterHash = Animator.StringToHash(idleParameterName);
        }
    }
}
